const jwt = require('jsonwebtoken')
const secret = 'sdfajlsdkjflaskjdflasjdl12jlkjlasdkjf$asdfljl' //token签发的私钥
function checkToken(req,res,next){
  let {token} = req.headers
  // 1. 合法性判断
  jwt.verify(token, secret, function(err, decoded) {
    if(err){
      res.send({
        code:410,
        msg:'非法token，请登录'
      })
      return
    }
    // 2. 有效性判断
    let {time,expire} = decoded  //从合法token中解析出签发事件、有效时长
    let now = Date.now()
    if(now-time>expire){
      res.send({
        code:410,
        msg:'token已过期，请重新登录'
      })
      return
    } 
    // 3. 通过认证
    next()
  });
}

module.exports = {
  checkToken
}
